\hypertarget{group__udma__api}{
\section{Udma\_\-api}
\label{group__udma__api}\index{Udma\_\-api@{Udma\_\-api}}
}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{group__udma__api_ga9c2c43120f113a79cbabf894f5503f41}{uDMAEnable} (void)
\item 
void \hyperlink{group__udma__api_ga850808381da300573a6101e5a27f4675}{uDMADisable} (void)
\item 
unsigned long \hyperlink{group__udma__api_gac5f536604a0d047e4576b6949f6f47bf}{uDMAErrorStatusGet} (void)
\item 
void \hyperlink{group__udma__api_ga875220775201c33cd3c97ebcbca83ac2}{uDMAErrorStatusClear} (void)
\item 
void \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable} (unsigned long ulChannel)
\item 
void \hyperlink{group__udma__api_ga289becefab5048ec9dc8632595e03929}{uDMAChannelDisable} (unsigned long ulChannel)
\item 
tBoolean \hyperlink{group__udma__api_gacd7cc6d16578a2f2d787461b65266ba7}{uDMAChannelIsEnabled} (unsigned long ulChannel)
\item 
void \hyperlink{group__udma__api_ga9c94fd8f9422abb5231dacb6d51934bb}{uDMAControlBaseSet} (void $\ast$pControlTable)
\item 
void $\ast$ \hyperlink{group__udma__api_ga09c51018a10f41216497396e4ec5a6fd}{uDMAControlBaseGet} (void)
\item 
void \hyperlink{group__udma__api_ga458c83ac194bb1307c9adc08358aed3d}{uDMAChannelRequest} (unsigned long ulChannel)
\item 
void \hyperlink{group__udma__api_ga245e6cb23119f2966517aafc6566fd05}{uDMAChannelAttributeEnable} (unsigned long ulChannel, unsigned long ulAttr)
\item 
void \hyperlink{group__udma__api_ga84e74e436e19037286aabbbaa2a19b05}{uDMAChannelAttributeDisable} (unsigned long ulChannel, unsigned long ulAttr)
\item 
unsigned long \hyperlink{group__udma__api_ga977cef65e1b09195b61aaec05d4f84ac}{uDMAChannelAttributeGet} (unsigned long ulChannel)
\item 
void \hyperlink{group__udma__api_gaf553e90b1b335f1e3802d36951eeca7f}{uDMAChannelControlSet} (unsigned long ulChannel, unsigned long ulControl)
\item 
void \hyperlink{group__udma__api_ga699f1ee854bd4299515344a5282252b5}{uDMAChannelTransferSet} (unsigned long ulChannel, unsigned long ulMode, void $\ast$pvSrcAddr, void $\ast$pvDstAddr, unsigned long ulTransferSize)
\item 
unsigned long \hyperlink{group__udma__api_gade0f9b74b7c087a103665a64880093fc}{uDMAChannelSizeGet} (unsigned long ulChannel)
\item 
unsigned long \hyperlink{group__udma__api_gae80218753d60ad80168a9c53329764a0}{uDMAChannelModeGet} (unsigned long ulChannel)
\item 
void \hyperlink{group__udma__api_gad664f4839866f7a6e0922ffc98ddc3ea}{uDMAChannelSelectSecondary} (unsigned long ulSecPeriphs)
\item 
void \hyperlink{group__udma__api_gad927ea471380800671774a37f7f03868}{uDMAChannelSelectDefault} (unsigned long ulDefPeriphs)
\item 
void \hyperlink{group__udma__api_ga4d603b6ca362a44d2953cf1ac36a1523}{uDMAIntRegister} (unsigned long ulIntChannel, void($\ast$pfnHandler)(void))
\item 
void \hyperlink{group__udma__api_gac972259d4abaa3198125ffb59ab6ac98}{uDMAIntUnregister} (unsigned long ulIntChannel)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{group__udma__api_ga84e74e436e19037286aabbbaa2a19b05}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelAttributeDisable@{uDMAChannelAttributeDisable}}
\index{uDMAChannelAttributeDisable@{uDMAChannelAttributeDisable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelAttributeDisable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelAttributeDisable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulAttr}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga84e74e436e19037286aabbbaa2a19b05}
Disables attributes of a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel to configure. \item[{\em ulAttr}]is a combination of attributes for the channel.\end{DoxyParams}
This function is used to disable attributes of a uDMA channel.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

The {\itshape ulAttr\/} parameter is the logical OR of any of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-ATTR\_\-USEBURST} is used to restrict transfers to use only a burst mode.
\item {\bfseries UDMA\_\-ATTR\_\-ALTSELECT} is used to select the alternate control structure for this channel.
\item {\bfseries UDMA\_\-ATTR\_\-HIGH\_\-PRIORITY} is used to set this channel to high priority.
\item {\bfseries UDMA\_\-ATTR\_\-REQMASK} is used to mask the hardware request signal from the peripheral for this channel.
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga245e6cb23119f2966517aafc6566fd05}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelAttributeEnable@{uDMAChannelAttributeEnable}}
\index{uDMAChannelAttributeEnable@{uDMAChannelAttributeEnable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelAttributeEnable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelAttributeEnable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulAttr}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga245e6cb23119f2966517aafc6566fd05}
Enables attributes of a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel to configure. \item[{\em ulAttr}]is a combination of attributes for the channel.\end{DoxyParams}
The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

The {\itshape ulAttr\/} parameter is the logical OR of any of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-ATTR\_\-USEBURST} is used to restrict transfers to use only a burst mode.
\item {\bfseries UDMA\_\-ATTR\_\-ALTSELECT} is used to select the alternate control structure for this channel.
\item {\bfseries UDMA\_\-ATTR\_\-HIGH\_\-PRIORITY} is used to set this channel to high priority.
\item {\bfseries UDMA\_\-ATTR\_\-REQMASK} is used to mask the hardware request signal from the peripheral for this channel.
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga977cef65e1b09195b61aaec05d4f84ac}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelAttributeGet@{uDMAChannelAttributeGet}}
\index{uDMAChannelAttributeGet@{uDMAChannelAttributeGet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelAttributeGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long uDMAChannelAttributeGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga977cef65e1b09195b61aaec05d4f84ac}
Gets the enabled attributes of a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel to configure.\end{DoxyParams}
This function returns a combination of flags representing the attributes of the uDMA channel.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
Returns the logical OR of the attributes of the uDMA channel, which can be any of the following:
\begin{DoxyItemize}
\item {\bfseries UDMA\_\-ATTR\_\-USEBURST} is used to restrict transfers to use only a burst mode.
\item {\bfseries UDMA\_\-ATTR\_\-ALTSELECT} is used to select the alternate control structure for this channel.
\item {\bfseries UDMA\_\-ATTR\_\-HIGH\_\-PRIORITY} is used to set this channel to high priority.
\item {\bfseries UDMA\_\-ATTR\_\-REQMASK} is used to mask the hardware request signal from the peripheral for this channel. 
\end{DoxyItemize}
\end{DoxyReturn}
\hypertarget{group__udma__api_gaf553e90b1b335f1e3802d36951eeca7f}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelControlSet@{uDMAChannelControlSet}}
\index{uDMAChannelControlSet@{uDMAChannelControlSet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelControlSet}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelControlSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulControl}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gaf553e90b1b335f1e3802d36951eeca7f}
Sets the control parameters for a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the logical OR of the uDMA channel number with {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT}. \item[{\em ulControl}]is logical OR of several control values to set the control parameters for the channel.\end{DoxyParams}
This function is used to set control parameters for a uDMA transfer. These are typically parameters that are not changed often.

The {\itshape ulChannel\/} parameter is one of the choices documented in the \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} function. It should be the logical OR of the channel with one of {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT} to choose whether the primary or alternate data structure is used.

The {\itshape ulControl\/} parameter is the logical OR of five values: the data size, the source address increment, the destination address increment, the arbitration size, and the use burst flag. The choices available for each of these values is described below.

Choose the data size from one of {\bfseries UDMA\_\-SIZE\_\-8}, {\bfseries UDMA\_\-SIZE\_\-16}, or {\bfseries UDMA\_\-SIZE\_\-32} to select a data size of 8, 16, or 32 bits.

Choose the source address increment from one of {\bfseries UDMA\_\-SRC\_\-INC\_\-8}, {\bfseries UDMA\_\-SRC\_\-INC\_\-16}, {\bfseries UDMA\_\-SRC\_\-INC\_\-32}, or {\bfseries UDMA\_\-SRC\_\-INC\_\-NONE} to select an address increment of 8-\/bit bytes, 16-\/bit halfwords, 32-\/bit words, or to select non-\/incrementing.

Choose the destination address increment from one of {\bfseries UDMA\_\-DST\_\-INC\_\-8}, {\bfseries UDMA\_\-DST\_\-INC\_\-16}, {\bfseries UDMA\_\-DST\_\-INC\_\-32}, or {\bfseries UDMA\_\-DST\_\-INC\_\-NONE} to select an address increment of 8-\/bit bytes, 16-\/bit halfwords, 32-\/bit words, or to select non-\/incrementing.

The arbitration size determines how many items are transferred before the uDMA controller re-\/arbitrates for the bus. Choose the arbitration size from one of {\bfseries UDMA\_\-ARB\_\-1}, {\bfseries UDMA\_\-ARB\_\-2}, {\bfseries UDMA\_\-ARB\_\-4}, {\bfseries UDMA\_\-ARB\_\-8}, through {\bfseries UDMA\_\-ARB\_\-1024} to select the arbitration size from 1 to 1024 items, in powers of 2.

The value {\bfseries UDMA\_\-NEXT\_\-USEBURST} is used to force the channel to only respond to burst requests at the tail end of a scatter-\/gather transfer.

\begin{DoxyNote}{Note}
The address increment cannot be smaller than the data size.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga289becefab5048ec9dc8632595e03929}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelDisable@{uDMAChannelDisable}}
\index{uDMAChannelDisable@{uDMAChannelDisable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelDisable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelDisable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga289becefab5048ec9dc8632595e03929}
Disables a uDMA channel for operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel number to disable.\end{DoxyParams}
This function disables a specific uDMA channel. Once disabled, a channel will not respond to uDMA transfer requests until re-\/enabled via \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()}.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelEnable@{uDMAChannelEnable}}
\index{uDMAChannelEnable@{uDMAChannelEnable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelEnable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelEnable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}
Enables a uDMA channel for operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel number to enable.\end{DoxyParams}
This function enables a specific uDMA channel for use. This function must be used to enable a channel before it can be used to perform a uDMA transfer.

When a uDMA transfer is completed, the channel will be automatically disabled by the uDMA controller. Therefore, this function should be called prior to starting up any new transfer.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gacd7cc6d16578a2f2d787461b65266ba7}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelIsEnabled@{uDMAChannelIsEnabled}}
\index{uDMAChannelIsEnabled@{uDMAChannelIsEnabled}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelIsEnabled}]{\setlength{\rightskip}{0pt plus 5cm}tBoolean uDMAChannelIsEnabled (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gacd7cc6d16578a2f2d787461b65266ba7}
Checks if a uDMA channel is enabled for operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel number to check.\end{DoxyParams}
This function checks to see if a specific uDMA channel is enabled. This can be used to check the status of a transfer, since the channel will be automatically disabled at the end of a transfer.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
Returns {\bfseries true} if the channel is enabled, {\bfseries false} if disabled. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gae80218753d60ad80168a9c53329764a0}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelModeGet@{uDMAChannelModeGet}}
\index{uDMAChannelModeGet@{uDMAChannelModeGet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelModeGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long uDMAChannelModeGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gae80218753d60ad80168a9c53329764a0}
Gets the transfer mode for a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the logical or of the uDMA channel number with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT}.\end{DoxyParams}
This function is used to get the transfer mode for the uDMA channel. It can be used to query the status of a transfer on a channel. When the transfer is complete the mode will be {\bfseries UDMA\_\-MODE\_\-STOP}.

The {\itshape ulChannel\/} parameter is one of the choices documented in the \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} function. It should be the logical OR of the channel with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT} to choose whether the primary or alternate data structure is used.

\begin{DoxyReturn}{Returns}
Returns the transfer mode of the specified channel and control structure, which will be one of the following values: {\bfseries UDMA\_\-MODE\_\-STOP}, {\bfseries UDMA\_\-MODE\_\-BASIC}, {\bfseries UDMA\_\-MODE\_\-AUTO}, {\bfseries UDMA\_\-MODE\_\-PINGPONG}, {\bfseries UDMA\_\-MODE\_\-MEM\_\-SCATTER\_\-GATHER}, or {\bfseries UDMA\_\-MODE\_\-PER\_\-SCATTER\_\-GATHER}. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga458c83ac194bb1307c9adc08358aed3d}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelRequest@{uDMAChannelRequest}}
\index{uDMAChannelRequest@{uDMAChannelRequest}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelRequest}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelRequest (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga458c83ac194bb1307c9adc08358aed3d}
Requests a uDMA channel to start a transfer.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the channel number on which to request a uDMA transfer.\end{DoxyParams}
This function allows software to request a uDMA channel to begin a transfer. This could be used for performing a memory to memory transfer, or if for some reason a transfer needs to be initiated by software instead of the peripheral associated with that channel.

The {\itshape ulChannel\/} parameter must be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0RX} for UART 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART0TX} for UART 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1RX} for UART 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-UART1TX} for UART 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0RX} for SSI 0 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI0TX} for SSI 0 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1RX} for SSI 1 receive channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SSI1TX} for SSI 1 transmit channel
\item {\bfseries UDMA\_\-CHANNEL\_\-SW} for the software dedicated uDMA channel
\end{DoxyItemize}

And for microcontrollers that have a USB peripheral:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1RX} for USB endpoint 1 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP1TX} for USB endpoint 1 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2RX} for USB endpoint 2 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP2TX} for USB endpoint 2 transmit
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3RX} for USB endpoint 3 receive
\item {\bfseries UDMA\_\-CHANNEL\_\-USBEP3TX} for USB endpoint 3 transmit
\end{DoxyItemize}

\begin{DoxyNote}{Note}
If the channel is {\bfseries UDMA\_\-CHANNEL\_\-SW} and interrupts are used, then the completion will be signaled on the uDMA dedicated interrupt. If a peripheral channel is used, then the completion will be signaled on the peripheral's interrupt.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gad927ea471380800671774a37f7f03868}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelSelectDefault@{uDMAChannelSelectDefault}}
\index{uDMAChannelSelectDefault@{uDMAChannelSelectDefault}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelSelectDefault}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelSelectDefault (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulDefPeriphs}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gad927ea471380800671774a37f7f03868}
Selects the default peripheral for a set of uDMA channels.


\begin{DoxyParams}{Parameters}
\item[{\em ulDefPeriphs}]is the logical or of the uDMA channels for which to use the default peripheral, instead of the secondary peripheral.\end{DoxyParams}
This function is used to select the default peripheral assignment for a set of uDMA channels.

The parameter {\itshape ulDefPeriphs\/} can be the logical OR of any of the following macros. If one of the macros below is in the list passed to this function, then the default peripheral (marked as {\bfseries \_\-DEF\_\-}) will be selected.


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-DEF\_\-USBEP1RX\_\-SEC\_\-UART2RX} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP1TX\_\-SEC\_\-UART2TX} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP2RX\_\-SEC\_\-TMR3A} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP2TX\_\-SEC\_\-TMR3B} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP3RX\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP3TX\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-ETH0RX\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-ETH0TX\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-UART0RX\_\-SEC\_\-UART1RX} 
\item {\bfseries UDMA\_\-DEF\_\-UART0TX\_\-SEC\_\-UART1TX} 
\item {\bfseries UDMA\_\-DEF\_\-SSI0RX\_\-SEC\_\-SSI1RX} 
\item {\bfseries UDMA\_\-DEF\_\-SSI0TX\_\-SEC\_\-SSI1TX} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-UART2RX} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-UART2TX} 
\item {\bfseries UDMA\_\-DEF\_\-ADC00\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-ADC01\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-ADC02\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-ADC03\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-TMR0A\_\-SEC\_\-TMR1A} 
\item {\bfseries UDMA\_\-DEF\_\-TMR0B\_\-SEC\_\-TMR1B} 
\item {\bfseries UDMA\_\-DEF\_\-TMR1A\_\-SEC\_\-EPI0RX} 
\item {\bfseries UDMA\_\-DEF\_\-TMR1B\_\-SEC\_\-EPI0TX} 
\item {\bfseries UDMA\_\-DEF\_\-UART1RX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-UART1TX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-SSI1RX\_\-SEC\_\-ADC10} 
\item {\bfseries UDMA\_\-DEF\_\-SSI1TX\_\-SEC\_\-ADC11} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-ADC12} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-ADC13} 
\item {\bfseries UDMA\_\-DEF\_\-I2S0RX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-I2S0TX\_\-SEC\_\-RESERVED} 
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gad664f4839866f7a6e0922ffc98ddc3ea}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelSelectSecondary@{uDMAChannelSelectSecondary}}
\index{uDMAChannelSelectSecondary@{uDMAChannelSelectSecondary}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelSelectSecondary}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelSelectSecondary (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulSecPeriphs}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gad664f4839866f7a6e0922ffc98ddc3ea}
Selects the secondary peripheral for a set of uDMA channels.


\begin{DoxyParams}{Parameters}
\item[{\em ulSecPeriphs}]is the logical or of the uDMA channels for which to use the secondary peripheral, instead of the default peripheral.\end{DoxyParams}
This function is used to select the secondary peripheral assignment for a set of uDMA channels. By selecting the secondary peripheral assignment for a channel, the default peripheral assignment is no longer available for that channel.

The parameter {\itshape ulSecPeriphs\/} can be the logical OR of any of the following macros. If one of the macros below is in the list passed to this function, then the secondary peripheral (marked as {\bfseries \_\-SEC\_\-}) will be selected.


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-DEF\_\-USBEP1RX\_\-SEC\_\-UART2RX} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP1TX\_\-SEC\_\-UART2TX} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP2RX\_\-SEC\_\-TMR3A} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP2TX\_\-SEC\_\-TMR3B} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP3RX\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-USBEP3TX\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-ETH0RX\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-ETH0TX\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-UART0RX\_\-SEC\_\-UART1RX} 
\item {\bfseries UDMA\_\-DEF\_\-UART0TX\_\-SEC\_\-UART1TX} 
\item {\bfseries UDMA\_\-DEF\_\-SSI0RX\_\-SEC\_\-SSI1RX} 
\item {\bfseries UDMA\_\-DEF\_\-SSI0TX\_\-SEC\_\-SSI1TX} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-UART2RX} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-UART2TX} 
\item {\bfseries UDMA\_\-DEF\_\-ADC00\_\-SEC\_\-TMR2A} 
\item {\bfseries UDMA\_\-DEF\_\-ADC01\_\-SEC\_\-TMR2B} 
\item {\bfseries UDMA\_\-DEF\_\-ADC02\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-ADC03\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-TMR0A\_\-SEC\_\-TMR1A} 
\item {\bfseries UDMA\_\-DEF\_\-TMR0B\_\-SEC\_\-TMR1B} 
\item {\bfseries UDMA\_\-DEF\_\-TMR1A\_\-SEC\_\-EPI0RX} 
\item {\bfseries UDMA\_\-DEF\_\-TMR1B\_\-SEC\_\-EPI0TX} 
\item {\bfseries UDMA\_\-DEF\_\-UART1RX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-UART1TX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-SSI1RX\_\-SEC\_\-ADC10} 
\item {\bfseries UDMA\_\-DEF\_\-SSI1TX\_\-SEC\_\-ADC11} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-ADC12} 
\item {\bfseries UDMA\_\-DEF\_\-RESERVED\_\-SEC\_\-ADC13} 
\item {\bfseries UDMA\_\-DEF\_\-I2S0RX\_\-SEC\_\-RESERVED} 
\item {\bfseries UDMA\_\-DEF\_\-I2S0TX\_\-SEC\_\-RESERVED} 
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gade0f9b74b7c087a103665a64880093fc}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelSizeGet@{uDMAChannelSizeGet}}
\index{uDMAChannelSizeGet@{uDMAChannelSizeGet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelSizeGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long uDMAChannelSizeGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gade0f9b74b7c087a103665a64880093fc}
Gets the current transfer size for a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the logical or of the uDMA channel number with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT}.\end{DoxyParams}
This function is used to get the uDMA transfer size for a channel. The transfer size is the number of items to transfer, where the size of an item might be 8, 16, or 32 bits. If a partial transfer has already occurred, then the number of remaining items will be returned. If the transfer is complete, then 0 will be returned.

The {\itshape ulChannel\/} parameter is one of the choices documented in the \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} function. It should be the logical OR of the channel with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT} to choose whether the primary or alternate data structure is used.

\begin{DoxyReturn}{Returns}
Returns the number of items remaining to transfer. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga699f1ee854bd4299515344a5282252b5}{
\index{udma\_\-api@{udma\_\-api}!uDMAChannelTransferSet@{uDMAChannelTransferSet}}
\index{uDMAChannelTransferSet@{uDMAChannelTransferSet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAChannelTransferSet}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAChannelTransferSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulMode, }
\item[{void $\ast$}]{ pvSrcAddr, }
\item[{void $\ast$}]{ pvDstAddr, }
\item[{unsigned long}]{ ulTransferSize}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga699f1ee854bd4299515344a5282252b5}
Sets the transfer parameters for a uDMA channel.


\begin{DoxyParams}{Parameters}
\item[{\em ulChannel}]is the logical or of the uDMA channel number with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT}. \item[{\em ulMode}]is the type of uDMA transfer. \item[{\em pvSrcAddr}]is the source address for the transfer. \item[{\em pvDstAddr}]is the destination address for the transfer. \item[{\em ulTransferSize}]is the number of data items to transfer.\end{DoxyParams}
This function is used to set the parameters for a uDMA transfer. These are typically parameters that are changed often. The function \hyperlink{group__udma__api_gaf553e90b1b335f1e3802d36951eeca7f}{uDMAChannelControlSet()} MUST be called at least once for this channel prior to calling this function.

The {\itshape ulChannel\/} parameter is one of the choices documented in the \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} function. It should be the logical OR of the channel with either {\bfseries UDMA\_\-PRI\_\-SELECT} or {\bfseries UDMA\_\-ALT\_\-SELECT} to choose whether the primary or alternate data structure is used.

The {\itshape ulMode\/} parameter should be one of the following values:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-MODE\_\-STOP} stops the uDMA transfer. The controller sets the mode to this value at the end of a transfer.
\item {\bfseries UDMA\_\-MODE\_\-BASIC} to perform a basic transfer based on request.
\item {\bfseries UDMA\_\-MODE\_\-AUTO} to perform a transfer that will always complete once started even if request is removed.
\item {\bfseries UDMA\_\-MODE\_\-PINGPONG} to set up a transfer that switches between the primary and alternate control structures for the channel. This allows use of ping-\/pong buffering for uDMA transfers.
\item {\bfseries UDMA\_\-MODE\_\-MEM\_\-SCATTER\_\-GATHER} to set up a memory scatter-\/gather transfer.
\item {\bfseries UDMA\_\-MODE\_\-PER\_\-SCATTER\_\-GATHER} to set up a peripheral scatter-\/gather transfer.
\end{DoxyItemize}

The {\itshape pvSrcAddr\/} and {\itshape pvDstAddr\/} parameters are pointers to the first location of the data to be transferred. These addresses should be aligned according to the item size. The compiler will take care of this if the pointers are pointing to storage of the appropriate data type.

The {\itshape ulTransferSize\/} parameter is the number of data items, not the number of bytes.

The two scatter/gather modes, memory and peripheral, are actually different depending on whether the primary or alternate control structure is selected. This function will look for the {\bfseries UDMA\_\-PRI\_\-SELECT} and {\bfseries UDMA\_\-ALT\_\-SELECT} flag along with the channel number and will set the scatter/gather mode as appropriate for the primary or alternate control structure.

The channel must also be enabled using \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} after calling this function. The transfer will not begin until the channel has been set up and enabled. Note that the channel is automatically disabled after the transfer is completed, meaning that \hyperlink{group__udma__api_ga3b864ec4b4086e1b5d382c7cf14ae9ea}{uDMAChannelEnable()} must be called again after setting up the next transfer.

\begin{DoxyNote}{Note}
Great care must be taken to not modify a channel control structure that is in use or else the results will be unpredictable, including the possibility of undesired data transfers to or from memory or peripherals. For BASIC and AUTO modes, it is safe to make changes when the channel is disabled, or the \hyperlink{group__udma__api_gae80218753d60ad80168a9c53329764a0}{uDMAChannelModeGet()} returns {\bfseries UDMA\_\-MODE\_\-STOP}. For PINGPONG or one of the SCATTER\_\-GATHER modes, it is safe to modify the primary or alternate control structure only when the other is being used. The \hyperlink{group__udma__api_gae80218753d60ad80168a9c53329764a0}{uDMAChannelModeGet()} function will return {\bfseries UDMA\_\-MODE\_\-STOP} when a channel control structure is inactive and safe to modify.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga09c51018a10f41216497396e4ec5a6fd}{
\index{udma\_\-api@{udma\_\-api}!uDMAControlBaseGet@{uDMAControlBaseGet}}
\index{uDMAControlBaseGet@{uDMAControlBaseGet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAControlBaseGet}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ uDMAControlBaseGet (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga09c51018a10f41216497396e4ec5a6fd}
Gets the base address for the channel control table.

This function gets the base address of the channel control table. This table resides in system memory and holds control information for each uDMA channel.

\begin{DoxyReturn}{Returns}
Returns a pointer to the base address of the channel control table. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga9c94fd8f9422abb5231dacb6d51934bb}{
\index{udma\_\-api@{udma\_\-api}!uDMAControlBaseSet@{uDMAControlBaseSet}}
\index{uDMAControlBaseSet@{uDMAControlBaseSet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAControlBaseSet}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAControlBaseSet (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ pControlTable}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga9c94fd8f9422abb5231dacb6d51934bb}
Sets the base address for the channel control table.


\begin{DoxyParams}{Parameters}
\item[{\em pControlTable}]is a pointer to the 1024 byte aligned base address of the uDMA channel control table.\end{DoxyParams}
This function sets the base address of the channel control table. This table resides in system memory and holds control information for each uDMA channel. The table must be aligned on a 1024 byte boundary. The base address must be set before any of the channel functions can be used.

The size of the channel control table depends on the number of uDMA channels, and which transfer modes are used. Refer to the introductory text and the microcontroller datasheet for more information about the channel control table.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga850808381da300573a6101e5a27f4675}{
\index{udma\_\-api@{udma\_\-api}!uDMADisable@{uDMADisable}}
\index{uDMADisable@{uDMADisable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMADisable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMADisable (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga850808381da300573a6101e5a27f4675}
Disables the uDMA controller for use.

This function disables the uDMA controller. Once disabled, the uDMA controller will not operate until re-\/enabled with \hyperlink{group__udma__api_ga9c2c43120f113a79cbabf894f5503f41}{uDMAEnable()}.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga9c2c43120f113a79cbabf894f5503f41}{
\index{udma\_\-api@{udma\_\-api}!uDMAEnable@{uDMAEnable}}
\index{uDMAEnable@{uDMAEnable}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAEnable}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAEnable (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga9c2c43120f113a79cbabf894f5503f41}
Enables the uDMA controller for use.

This function enables the uDMA controller. The uDMA controller must be enabled before it can be configured and used.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga875220775201c33cd3c97ebcbca83ac2}{
\index{udma\_\-api@{udma\_\-api}!uDMAErrorStatusClear@{uDMAErrorStatusClear}}
\index{uDMAErrorStatusClear@{uDMAErrorStatusClear}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAErrorStatusClear}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAErrorStatusClear (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga875220775201c33cd3c97ebcbca83ac2}
Clears the uDMA error interrupt.

This function clears a pending uDMA error interrupt. It should be called from within the uDMA error interrupt handler to clear the interrupt.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gac5f536604a0d047e4576b6949f6f47bf}{
\index{udma\_\-api@{udma\_\-api}!uDMAErrorStatusGet@{uDMAErrorStatusGet}}
\index{uDMAErrorStatusGet@{uDMAErrorStatusGet}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAErrorStatusGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long uDMAErrorStatusGet (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gac5f536604a0d047e4576b6949f6f47bf}
Gets the uDMA error status.

This function returns the uDMA error status. It should be called from within the uDMA error interrupt handler to determine if a uDMA error occurred.

\begin{DoxyReturn}{Returns}
Returns non-\/zero if a uDMA error is pending. 
\end{DoxyReturn}
\hypertarget{group__udma__api_ga4d603b6ca362a44d2953cf1ac36a1523}{
\index{udma\_\-api@{udma\_\-api}!uDMAIntRegister@{uDMAIntRegister}}
\index{uDMAIntRegister@{uDMAIntRegister}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAIntRegister}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAIntRegister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulIntChannel, }
\item[{void($\ast$)(void)}]{ pfnHandler}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_ga4d603b6ca362a44d2953cf1ac36a1523}
Registers an interrupt handler for the uDMA controller.


\begin{DoxyParams}{Parameters}
\item[{\em ulIntChannel}]identifies which uDMA interrupt is to be registered. \item[{\em pfnHandler}]is a pointer to the function to be called when the interrupt is activated.\end{DoxyParams}
This sets and enables the handler to be called when the uDMA controller generates an interrupt. The {\itshape ulIntChannel\/} parameter should be one of the following:


\begin{DoxyItemize}
\item {\bfseries UDMA\_\-INT\_\-SW} to register an interrupt handler to process interrupts from the uDMA software channel (UDMA\_\-CHANNEL\_\-SW)
\item {\bfseries UDMA\_\-INT\_\-ERR} to register an interrupt handler to process uDMA error interrupts
\end{DoxyItemize}

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
The interrupt handler for uDMA is for transfer completion when the channel UDMA\_\-CHANNEL\_\-SW is used, and for error interrupts. The interrupts for each peripheral channel are handled through the individual peripheral interrupt handlers.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__udma__api_gac972259d4abaa3198125ffb59ab6ac98}{
\index{udma\_\-api@{udma\_\-api}!uDMAIntUnregister@{uDMAIntUnregister}}
\index{uDMAIntUnregister@{uDMAIntUnregister}!udma_api@{udma\_\-api}}
\subsubsection[{uDMAIntUnregister}]{\setlength{\rightskip}{0pt plus 5cm}void uDMAIntUnregister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulIntChannel}
\end{DoxyParamCaption}
)}}
\label{group__udma__api_gac972259d4abaa3198125ffb59ab6ac98}
Unregisters an interrupt handler for the uDMA controller.


\begin{DoxyParams}{Parameters}
\item[{\em ulIntChannel}]identifies which uDMA interrupt to unregister.\end{DoxyParams}
This function will disable and clear the handler to be called for the specified uDMA interrupt. The {\itshape ulIntChannel\/} parameter should be one of {\bfseries UDMA\_\-INT\_\-SW} or {\bfseries UDMA\_\-INT\_\-ERR} as documented for the function \hyperlink{group__udma__api_ga4d603b6ca362a44d2953cf1ac36a1523}{uDMAIntRegister()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
